home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / amigae / gencodee_v22.lha / GenCodeE / sources / GenCodeE_v17 / GenCodeE.e < prev    next >
Encoding:
Text File  |  1994-11-22  |  3.2 KB  |  132 lines

  1. OPT OSVERSION=37
  2. OPT LARGE
  3.  
  4.  
  5. ->*****
  6. ->** External modules
  7. ->*****
  8. MODULE 'muibuilder' , 'libraries/muibuilder'
  9. MODULE 'utility/tagitem'
  10.  
  11. MODULE '*MUIStrings'
  12. MODULE '*AuxProcs'
  13. MODULE '*Variable'
  14. MODULE '*GUIFile'
  15.  
  16.  
  17. ->*****
  18. ->** Exception handling
  19. ->*****
  20. RAISE    "LIB"    IF    OpenLibrary()    =    NIL    ,
  21.         "MBtf"    IF    Mb_Open()        =    NIL    ,
  22.         "MEM"    IF    String()        =    NIL
  23.  
  24.  
  25. /*******************
  26. ** Main procedure **
  27. *******************/
  28. PROC main() HANDLE
  29.  
  30.     DEF application = FALSE , declarations = FALSE , code = FALSE
  31.     DEF notifications = FALSE , environment = FALSE , locale = FALSE
  32.     DEF filename : PTR TO CHAR , catalog_filename : PTR TO CHAR
  33.     DEF catalog_name : PTR TO CHAR , getstring_func : PTR TO CHAR
  34.     DEF number_vars , vars : PTR TO variable , ident_length_max
  35.     DEF genfile = NIL : PTR TO gui_file
  36.     DEF tmp_string : PTR TO CHAR
  37.  
  38.     muibbase := OpenLibrary( 'muibuilder.library' , 0 )
  39.     Mb_Open()
  40.  
  41.     Mb_GetA( [    MUIB_VARNUMBER        , {number_vars}            ,
  42.                 MUIB_APPLICATION    , {application}            ,
  43.                 MUIB_DECLARATIONS    , {declarations}        ,
  44.                 MUIB_CODE            , {code}                ,
  45.                 MUIB_NOTIFICATIONS    , {notifications}        ,
  46.                 MUIB_ENVIRONMENT    , {environment}            ,
  47.                 MUIB_LOCALE            , {locale}                ,
  48.                 MUIB_FILENAME        , {filename}            ,
  49.                 MUIB_CATALOGNAME    , {catalog_filename}    ,
  50.                 MUIB_GETSTRINGNAME    , {getstring_func}        ,
  51.                 TAG_END ] )
  52.  
  53.     tmp_string := filename
  54.     filename := String( StrLen( filename ) + 2 )
  55.     StringF( filename , '\s.e' , tmp_string )
  56.  
  57.     catalog_filename := FilePart( catalog_filename )
  58.     catalog_name := String( StrLen( catalog_filename ) + 5 )
  59.     StringF( catalog_name , 'catalog_\s' , catalog_filename )
  60.  
  61.     vars , ident_length_max := init_variables( number_vars )
  62.  
  63.     NEW genfile.open( filename , number_vars , vars , ident_length_max )
  64.  
  65.     IF declarations
  66.  
  67.         IF environment AND application THEN genfile.put_header( application )
  68.         genfile.put_aux_objects( environment , application )
  69.         genfile.put_main_object( environment )
  70.         genfile.put_constants( environment )
  71.  
  72.     ENDIF
  73.  
  74.     IF code
  75.  
  76.         IF environment THEN genfile.put_create_declaration( application )
  77.         IF environment THEN genfile.put_create_local_defs()
  78.         IF environment THEN genfile.put_create_initialisations( locale , getstring_func )
  79.         genfile.put_code( getstring_func , muistrings_contents() )
  80.         IF environment THEN genfile.put_create_end()
  81.         IF environment THEN genfile.put_dispose_method()
  82.  
  83.     ENDIF
  84.  
  85.     IF notifications
  86.  
  87.         IF environment THEN genfile.put_init_notifications_declaration()
  88.         genfile.put_notifications( muistrings_contents() )
  89.         IF environment THEN genfile.put_init_notifications_end()
  90.  
  91.     ENDIF
  92.  
  93.     IF environment AND application THEN genfile.put_aux_funcs( locale , getstring_func )
  94.  
  95. EXCEPT DO
  96.  
  97.     SELECT exception
  98.  
  99.         CASE "MEM"
  100.  
  101.             error_request( 'Out of memory !' )
  102.  
  103.         CASE "LIB"
  104.  
  105.             error_request( 'Can''t open muibuilder.library !' )
  106.  
  107.         CASE "MBtf"
  108.  
  109.             error_request( 'Unable to get temporary files !' )
  110.  
  111.         CASE "OPEN"
  112.  
  113.             error_request( 'Unable to open file to generate !' )
  114.  
  115.         CASE "OUT"
  116.  
  117.             error_request( 'Trouble writing file to generate !' )
  118.  
  119.     ENDSELECT
  120.  
  121.     IF genfile    THEN genfile.close()
  122.     IF muibbase    THEN Mb_Close()
  123.     IF muibbase    THEN CloseLibrary( muibbase )
  124.  
  125. ENDPROC
  126.  
  127.  
  128. /*******************
  129. ** String version **
  130. *******************/
  131. CHAR '$VER: GenCodeE 1.7 (21.11.94)' , 0
  132.